package com.ling.sbbyyds.imagetools;

import com.alibaba.fastjson.JSON;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;

import java.util.List;
import java.util.stream.Collectors;

@Data
@Component
public class ImageUtils {

    public static String imageServerIp;

    /**
     * 注入服务器地址属性值
     * @param imageServerIp
     */
    @Value("${application.config.imageServerIp}")
    private void setImageServerIp(String imageServerIp){
        ImageUtils.imageServerIp = imageServerIp;
    }

    /**
     * 转化单张图片
     *
     * @param imageUri 图片URI
     * @return 转换后地址
     */
    public static String convertImageUrl(String imageUri) {
        return imageServerIp + imageUri;
    }

    /**
     * 转换图片集合
     *
     * @param imageUriList 图片URI集合
     * @return 图片URL集合
     */
    public static List<String> convertImageUrl(List<String> imageUriList) {
        if(ObjectUtils.isEmpty(imageUriList)){
            return imageUriList;
        }
        return imageUriList.stream().map(ImageUtils::convertImageUrl).collect(Collectors.toList());
    }

    /**
     * 转换图片集合
     *
     * @param imageUriListJsonStr 图片URI集合字符串
     * @return 图片URL集合
     */
    public static String convertJsonToImageUrl(String imageUriListJsonStr) {
        if (!ObjectUtils.isEmpty(imageUriListJsonStr)) {
            return JSON.toJSONString(ImageUtils.convertImageUrl(JSON.parseArray(imageUriListJsonStr, String.class)));
        }
        return null;
    }

    /**
     * 转换图片集合
     *
     * @param imageUriListJsonStr 图片URI集合字符串
     * @return 图片URL集合
     */
    public static List<String> convertJsonToImageUrlList(String imageUriListJsonStr) {
        if (!ObjectUtils.isEmpty(imageUriListJsonStr)) {
            return ImageUtils.convertImageUrl(JSON.parseArray(imageUriListJsonStr, String.class));
        }
        return null;
    }
}
